import axios from 'axios'
import { Notify } from 'vant';
import store from '../store/index'
import router from '../router/index'
import {BASE} from '../config/index'
console.log('读取的env配置',process.env.VUE_APP_BASE_URL);
const instance = axios.create({
  // baseURL:'http://120.48.49.130:3000',
  // baseURL:'http://localhost:3001',
  baseURL:BASE, //动态提取env中的路径
  headers:{
    'token1':'asdfadsfasdf'
  }
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  console.log('请求拦截器',config);
  let {userInfo} = store.state.user
  config.headers.token = userInfo ? userInfo.token : ''
  // config.headers.token = 'asedfasdfasdf'  //测试非法token
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

let statusList = {
  '1':'success',
  '101':'success',
  '102':'warning',
  '103':'danger',
  '202':'warning',
  '203':'danger'
}
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  console.log('响应拦截器',response);
  let {code,msg} = response.data
  if(code>10){
    Notify({
      type:statusList[code], //以code作为动态键名，从statusList提取提示器风格
      message:msg
    })
  }
  if(code==202||code==203){ //token异常后，自动跳转登录
    router.push('/login')
  }
  return response;  //此处return的值，会给到api方法的then
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default instance